package com.ruoyi.pcj.mapper;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.pcj.dto.friend.FriendListDto;
import com.ruoyi.pcj.dto.friend.FriendNewMsgDto;
import com.ruoyi.pcj.dto.friend.FriendSessionDto;
import org.apache.ibatis.annotations.Param;
import com.ruoyi.pcj.domain.PcjLtFriendSetting;

/**
 * 聊天-好友列信息设置Mapper接口
 *
 * @author ms
 * @date 2024-03-28
 */
public interface PcjLtFriendSettingMapper extends BaseMapper<PcjLtFriendSetting> {

    /**
     * 自带的默认分页
     **/
    @Override
    <E extends IPage<PcjLtFriendSetting>> E selectPage(E page, @Param("ew") Wrapper<PcjLtFriendSetting> qw);


    /**
     * 查询聊天-好友列信息设置列表，自带的分页不满足时候，通过xml进行分页查询
     *
     * @param page   分页。
     * @param params 参数，在sql通过params.XXX即可，当然你也可以用实体类
     * @return
     */
    IPage<PcjLtFriendSetting> list(Page page, @Param("params") Map<String, Object> params);


    /**
     * 获取用户的好友列表
     **/
    List<FriendListDto> getFriendList(@Param("userId") Long userId);

    /**
     * 获取聊天会话
     *
     **/
    List<FriendSessionDto> getChatSession(@Param("userId") Long userId);

    /**
     * 获取指定聊天信息
     * **/
    List<FriendNewMsgDto> getRecordsByIds(@Param("ids") List<String> msgIds);
}
